package com.tedu.oop.day7;

/**
 * 本类用于测试抽象类入门
 *
 * 1.被abstract修饰，没有方法体的方法称抽象方法
 * 2.含有抽象方法的类必须为抽象类(抽象类不一定必须包含抽象方法)
 * 3.父类为抽象类，(1)子类必须重写(实现)父类中的’所有‘抽象方法，
 *              (2)或者子类也变成抽象类。
 *
 */
public class Test2_Abstract {

    public static void main(String[] args) {

        //抽象类不能创建对象(实例化)
        // new Animal();

        Animal a=new Pig();
        a.eat();a.play();
        a.fly();a.run();
    }


}

abstract class Animal{
    //创建普通方法
    public void eat(){
        System.out.println("啥都能吃");
    }
    public void play(){
        System.out.println("啥都能玩");
    }
    //父类抽象方法，
    public abstract void fly();
    public abstract void run();
}

class Pig extends Animal{

    @Override
    public void fly(){
        System.out.println("飞起来了");
    }

    @Override
    public void run() {
        System.out.println("跑起来了");
    }


}

